<

IgnorePointer および関連クラスのignoreSemantics の移行ガイド

まとめ

ignoringSemanticsプロパティはで削除されますIgnorePointerAbsorbPointerSliverIgnorePointerRenderSliverIgnorePointerRenderIgnorePointer、 とRenderAbsorbPointer

コンテクスト

ignoreSemanticsの結果を軽減するための回避策として導入されました。IgnorePointerおよびその関連ウィジェットはセマンティクス サブツリー全体を削除します。 したがって、この回避策は必要なくなりました。

変更内容の説明

ignoringSemantics取り除かれた。

移行ガイド

これらのウィジェットでこのパラメータを true に設定する場合は、次の使用を検討してください。ExcludeSemanticsその代わり。

移行前のコード:

IgnorePointer(``
  ignoringSemantics: true,
  child: const PlaceHolder(),
);

移行後のコード:

ExcludeSemantics(
  child: IgnorePointer(
    child: const PlaceHolder(),
  ),
);

設定時の挙動ignoringSemanticsfalse への設定はサポートされなくなりました。 独自のカスタム ウィジェットを作成することを検討してください。

/// A widget ignores pointer event but still keeps semantics actions.
class _IgnorePointerWithSemantics extends SingleChildRenderObjectWidget {
  const _IgnorePointerWithSemantics({
    super.child,
  });

  @override
  _RenderIgnorePointerWithSemantics createRenderObject(BuildContext context) {
    return _RenderIgnorePointerWithSemantics();
  }
}

class _RenderIgnorePointerWithSemantics extends RenderProxyBox {
  _RenderIgnorePointerWithSemantics();

  @override
  bool hitTest(BoxHitTestResult result, { required Offset position }) => false;
}

タイムライン

リリースされたバージョン: 3.10.0-2.0.pre
安定版リリース: TBD

参考文献

関連する PR:

  • PR 120619: ユーザーのみをブロックするように IgnorePointer と AbsorbPointer を修正しました a11y での相互作用。